home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 03 - 1987 / 03.10 Oct 87 / DrawPict Source / MacDrawPoly.BAS < prev    next >
Encoding:
BASIC Source File  |  1987-06-20  |  2.0 KB  |  104 lines  |  [TEXT/ZBAS]

  1. REM
  2. REM  (MacDrawPoly.BAS)
  3. REM
  4. REM  CREATES A 'MACDRAW(PICT)' CLOSED-POLYGON TWO DIFF WAYS
  5. REM
  6. WINDOW OFF
  7. COORDINATE WINDOW
  8. REM
  9. REM  DEFINE 'SHORT' PICCOMMENTS
  10. REM
  11. NIL&=0
  12. noData%=0
  13. picDwgBeg%=130
  14. picDwgEnd%=131
  15. PolyBegin%=160
  16. PolyEnd%=161
  17. picPlyClo%=165
  18. REM
  19. REM  DEFINE PICTURE RECTANGLE (A FULL-SIZE 'MACDRAW' PAGE)
  20. REM
  21. picRect=0.
  22. picTop%=0
  23. picLeft%=0
  24. picBottom%=720
  25. picRight%=576
  26. REM
  27. REM  'INITIALIZE' PICTURE
  28. REM
  29. CALL SETRECT(picRect,picLeft%,picTop%,picRight%,picBottom%)
  30. REM
  31. REM  CREATE THE 'MACDRAW' POLYGONS
  32. REM
  33. FOR File%=1 TO 2
  34. PicHand&=FN OPENPICTURE(picRect)
  35. REM
  36. REM  'BEGIN' A 'MACDRAW' PICTURE
  37. REM
  38. CALL PICCOMMENT(picDwgBeg%,noData%,NIL&)
  39. IF File%=2 THEN "poly2"
  40. REM
  41. REM  * * * CREATE 'MACDRAW-TYPE' CLOSED-POLYGON * * *
  42. REM
  43. "poly1"
  44. CALL PICCOMMENT(PolyBegin%,noData%,NIL&)
  45. CALL PICCOMMENT(picPlyClo%,noData%,NIL&)
  46. CALL MOVETO(85,10)
  47. CALL LINETO(85,45)
  48. CALL LINETO(184,70)
  49. CALL LINETO(225,10)
  50. CALL LINETO(135,35)
  51. CALL LINETO(85,10)
  52. CALL PICCOMMENT(PolyEnd%,noData%,NIL&)
  53. GOTO "EndPicture"
  54. REM
  55. REM  * * * CREATE CONVENTIONAL CLOSED-POLYGON * * *
  56. REM
  57. "poly2"
  58. PolyHandle&=FN OPENPOLY
  59. CALL MOVETO(85,10)
  60. CALL LINETO(85,45)
  61. CALL LINETO(184,70)
  62. CALL LINETO(225,10)
  63. CALL LINETO(135,35)
  64. CALL LINETO(85,10)
  65. CALL CLOSEPOLY
  66. CALL FRAMEPOLY(PolyHandle&)
  67. CALL KILLPOLY(PolyHandle&)
  68. REM
  69. REM  'END' A 'MACDRAW' PICTURE
  70. REM
  71. "EndPicture"
  72. CALL PICCOMMENT(picDwgEnd%,noData%,NIL&)
  73. REM
  74. REM  CREATE THE 'MACDRAW' PICT FILE
  75. REM
  76. DEF OPEN "PICTMDRW"
  77. IF File%=1 THEN OPEN "O",#1,"MacDraw.poly1"
  78. IF File%=2 THEN OPEN "O",#1,"MacDraw.poly2"
  79. REM
  80. REM  WRITE-OUT A 512 BYTE (256 WORDS OR INTEGERS) HEADER OF ZEROES
  81. REM
  82. A%=0
  83. FOR I%=1 TO 256
  84. WRITE #1,A%
  85. NEXT I%
  86. REM
  87. REM  CLOSE THE PICTURE & WRITE-OUT THE 'PICT' DATA
  88. REM
  89. CALL CLOSEPICTURE
  90. PicPtr&=PEEK LONG(PicHand&)
  91. PicLength%=PEEK WORD(PicPtr&+0)
  92. NumWords%=PicLength%/2
  93. doubleNumWords%=2*NumWords%
  94. IF doubleNumWords%<PicLength% THEN NumWords%=NumWords%+1
  95. FOR I%=1 TO NumWords%
  96. J%=2*(I%-1)
  97. A%=PEEK WORD(PicPtr&+J%)
  98. WRITE #1,A%
  99. NEXT I%
  100. CALL KILLPICTURE(PicHand&)
  101. CLOSE #1
  102. NEXT File%
  103. END
  104.